Authoring content for digital books

ABSTRACT

This disclosure describes systems, methods, and computer program products for authoring content for digital books. In some implementations, a single graphical user interface (GUI) is presented that allows an author to design a layout for the digital book, including editing text and inserting various types of interactive elements in the text. The GUI functions as both a digital book layout design tool and a word processor to facilitate the building of a digital book. The relative page location of inserted widgets can be determined by a user-selectable anchor point placed within the text. An outline view of the digital book can be created and presented in the GUI based on a hierarchical structure determined by paragraph styles applied to the text. The GUI can provide a hybrid glossary and index page for allowing the author to create and manage a glossary and index for the digital book.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Application No.61/525,695, filed on Aug. 19, 2011, and U.S. Provisional Application No.61/588,562, filed Jan. 19, 2012. The disclosures of the priorapplications are considered part of and are incorporated by reference inthe disclosure of this application.

TECHNICAL FIELD

This disclosure is related generally to authoring content for digitalbooks.

BACKGROUND

Digital books (also called e-books) can be stored on and read from adigital device such as an e-book reader, tablet computer, laptopcomputer or smart phone. A digital book can be purchased from an onlinestore on the World Wide Web and downloaded to the device. The device caninclude buttons for scrolling through pages of the digital book.

Creating a digital book can include various tasks such as composing,composition, proofing, editing, illustration generation, page layout,table of contents (TOC) generation, glossary generation, indexing,bibliography generation, and publishing. Software tools for creatingdigital books can help to automate many of these tasks. Because digitalbook authors may not be computer experts, such software tools need to beintuitive and easy to use.

SUMMARY

This disclosure describes systems, methods, and computer programproducts for authoring content for digital books. In someimplementations, a single graphical user interface (GUI) is presentedthat allows an author to design a layout for the digital book, includingediting text and inserting various types of interactive elements in thetext. The GUI functions as both a digital book layout design tool and aword processor to facilitate the building of a digital book. Therelative page location of inserted widgets can be determined by auser-selectable anchor point placed within the text. An outline view ofthe digital book can be created and presented in the GUI based on ahierarchical structure determined by paragraph styles applied to thetext. The GUI can provide a hybrid glossary and index page for allowingthe author to create and manage a glossary and index for the digitalbook.

In some implementations, a user interface element (hereafter alsoreferred to as a “widget inspector”) can be presented in the GUI toallow the author to determine a layout and user interaction of a widgetwhen presented on a device. Layout and user interaction options caninclude but are not limited to the selection of title and captionsettings and the displaying or hiding of controls for resizing, zoomingand navigating widget content. Widget content can include but is notlimited to text, image galleries, multimedia presentations, movies,HTML, animated and static diagrams, charts, tables, visual dictionaries,three-dimensional (3D) animation and any other media content.

In some implementations, the author can add accessibility descriptionsto labels or captions of a widget so as to cause a text-to-speech engineof an e-book reader operating in an accessibility mode (e.g.,“voiceover” mode) to play back audio corresponding to the label orcaption. The accessibility descriptions provide assistance to visuallyimpaired users of the e-book reader.

In some implementations, a method of authoring content for a digitalbook can include: receiving text from a text source; displaying the textin a graphical user interface (GUI); receiving first input selecting awidget type to be inserted in the text in the GUI; responsive to thefirst input, inserting a widget of the widget type in the text accordingto an anchor position in the text selected by the user; receiving secondinput selecting content to be inserted into the widget; and responsiveto the second input, inserting content in the widget.

In some implementations, a method of authoring content for a digitalbook includes: receiving text from a text source; displaying the text ina graphical user interface (GUI); receiving first input selecting areview widget type to be inserted in the text in the GUI; and responsiveto the first input, inserting a review widget in the text, the reviewwidget including a question area for receiving a question and an answerarea for receiving one or more answers to the question, where the answerarea is configured according to a question type.

In some implementations, a method of authoring content for a digitalbook includes: receiving text from a text source; displaying the text ina graphical user interface (GUI); receiving first input selecting avisual dictionary widget type to be inserted in the text in the GUI; andresponsive to the first input, inserting a visual dictionary widget inthe text, the visual dictionary widget including a media display areafor receiving content and a label area for supplying one or moreplacards configured to be dragged to one or more locations on thecontent.

In some implementations, a method of authoring content for a digitalbook includes: displaying a hybrid glossary and index page forinteracting with a glossary and index of a digital book, the glossaryand index page including a first area displaying a definition of a firstglossary term, a second area displaying a list of glossary termsincluding the first glossary term and other glossary terms, a third areadisplaying related glossary terms and a fourth area displayingreferences to the first glossary term; and responsive to dragging asecond glossary term from the list in the second area to the third area,automatically relating the second glossary term to the first glossaryterm.

Other implementations are also possible including but not limited toimplementations directed to systems, devices, and computer-readablemediums.

Particular implementations disclosed herein provide one or more of thefollowing advantages. An authoring tool for digital books is disclosedthat provides authors with a single GUI that allows the author to designa layout for the digital book, including editing text and insertingvarious types of interactive elements in the text. The GUI functions asboth a digital book layout design tool and a word processor tofacilitate the building of a digital book. The GUI and interactiveelements are simple and intuitive to use, making the digital bookcreation process easier and enjoyable to the author. The disclosed GUIsfacilitate or accelerate data input, give the author better control overthe design of the book and provide better visual feedback to the author.

The details of the disclosed implementations are set forth in theaccompanying drawings and the description below. Other features,objects, and advantages will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 illustrates an exemplary GUI for authoring content for digitalbooks.

FIG. 2 illustrates an exemplary gallery widget for inserting a galleryof digital images in a digital book.

FIGS. 3A and 3B illustrate an exemplary widget inspector for the gallerywidget of FIG. 2

FIG. 4 illustrates an exemplary heads-up display (HUD) for resizingwidget content.

FIG. 5 is a flow diagram for an exemplary process of adding a customizedwidget to the digital book.

FIG. 6 illustrates an exemplary process for converting a media objectinto a widget.

FIG. 7 is a flow diagram of an exemplary process for converting a mediaobject into a widget.

FIG. 8 illustrates an exemplary presentation widget for inserting amultimedia presentation in a digital book.

FIGS. 9A and 9B illustrate an exemplary widget inspector for thepresentation widget.

FIGS. 10A and 10B illustrate an exemplary movie widget and correspondingwidget inspector.

FIGS. 11A and 11B illustrate an exemplary HTML widget and correspondingwidget inspector.

FIG. 12 illustrates an exemplary review widget.

FIGS. 13A and 13B illustrate an exemplary widget inspector for thereview widget.

FIGS. 14A and 14B illustrate an exemplary multiple choice questionwidget type and corresponding widget inspector.

FIGS. 15A and 15B illustrate another exemplary multiple choice questiontype and corresponding widget inspector.

FIGS. 16A and 16B illustrate another exemplary multiple choice questiontype and corresponding widget inspector.

FIGS. 17A and 17B illustrate another exemplary multiple choice questiontype and corresponding widget inspector.

FIGS. 18A and 18B illustrate an exemplary visual dictionary widget andcorresponding widget inspector, where a HUD is used to set a first zoomlevel for a first placard.

FIGS. 19A and 19B illustrate an exemplary visual dictionary widget andcorresponding widget inspector, where the HUD is used to set a secondzoom level for a second placard.

FIGS. 20A and 20B illustrate an exemplary visual dictionary widget andcorresponding widget inspector, including transport controls and a fixedlocation for placard descriptions.

FIG. 21 illustrates an exemplary glossary tool bar.

FIG. 22 illustrates an exemplary hybrid glossary/index page.

FIG. 23 illustrates an exemplary process for adding term references tothe hybrid glossary/index.

FIG. 24 illustrates an exemplary hybrid glossary/index page with addedterm reference.

FIG. 25 illustrates an exemplary process for finding term instances inthe digital book.

FIG. 26 illustrates an exemplary hybrid glossary/index page, including aprimary definition and secondary term references.

FIG. 27 illustrates an exemplary process for managing links of termreferences.

FIGS. 28A-28D are flow diagrams of exemplary processes for creating adigital book.

FIG. 29 is a block diagram of an example architecture for a devicecapable of running an application for authoring content for digitalbooks.

FIG. 30 is a block diagram of an example network-operating environmentfor the device of FIG. 29.

The same reference symbol used in various drawings indicates likeelements.

DETAILED DESCRIPTION

In the text that follows, the term “author” refers to a user of adigital book authoring application and the terms “user” or “student”refer to a user of an e-book reader.

Exemplary GUI for Authoring Content for Digital Books

FIG. 1 illustrates an exemplary graphical user interface (GUI) 100 forauthoring content for digital books. GUI 100 can be generated by acomputer program (e.g., digital book authoring application) executing onone or more processors or processing cores of a data processingapparatus (e.g., device architecture 2900, FIG. 29), including but notlimited to: laptop computers, desktop computers, tablet computers,e-book readers and smart phones. In some implementations, GUI 100 can bea Web page generated by a Web-based digital book authoring applicationhosted on a server computer and sent to a client device over a network(e.g., the Internet).

In some implementations, the data processing apparatus (also referred toas “device”) can include a touch-sensitive surface. The touch-sensitivesurface can process multiple simultaneous points of input, includingprocessing data related to the pressure, degree or position of eachpoint of input. Such processing facilitates gestures with multiplefingers, including pinching and swiping. The examples that follow assumethat the device hosting the digital book authoring application includesa touch-sensitive surface for displaying GUI 100 and for receiving touchinput.

In some implementations, GUI 100 can be generated from a digital booktemplate that the author can select from a template chooser when theauthoring application is first launched on the device. In the exampleshown, a template for a textbook was selected by the author, and textfrom the selected textbook template file was loaded into the authoringapplication. A template can also have several master layouts for pages.For example, there can be separate master layouts for title page, TOCpage and basic pages. The author can change the master layout of a givenpage to adopt the fonts and paragraph styles of that master layout.

In some implementations, GUI 100 can include toolbar 102, sidebar 104and composition area 106. Toolbar 102 includes icons that can beselected by an author to perform various tasks associated with creatinga digital book. In the example shown, icons include View, Sections,Orientation, Device Preview, Text Box, Shapes, Table, Charts, Widgets,Comment, Inspector, Media, Colors and Fonts.

Sidebar 104 can display various views depending on the view selected viathe View icon. In the example shown, a book outline view is displayed.

Composition area 106 is the work area (a virtual composition area) forthe author to insert text and add interactive elements (e.g., a widget)for presenting rich media and graphics, as described below. The authorcan enter text directly onto composition area 106 using a virtualkeyboard that is exposed when a text editing option is selected througha menu, icon or tap sequence.

Text and other content can be imported into the authoring application ina variety of ways. For example, a text file can be imported into theapplication in response to selection of a menu import command. A contentfile can also be dragged from desktop, folder, disk or other source anddropped into GUI 100. In some implementations, when text is importedinto the authoring application, one or more pages are automaticallygenerated to accommodate the text. The number of pages created dependson the original size of the text file. Text can also be entered (e.g.,typed in by the author) directly onto composition area 106 by theauthor. Thus, the authoring application can operate as both a layoutdesign tool and a word processor. When text is imported in the digitalbook, the text automatically adopts the fonts and paragraph styles ofthe layout, which in this example can be determined by the textbooktemplate.

In some implementations, the author can change the layout or formattingstyle of a digital book by directly editing an element of the digitalbook. For example, the author can select a heading, paragraph, page, orother element of the digital book. The author can provide input tochange the size, color, font or other attribute of the selected element.When the author manually or directly (e.g., without actually selecting adifferent predefined style or format) changes the attribute of anelement in this manner, the change can be automatically applied tosimilar types of elements throughout the digital book. For example, ifthe author changes the font size of a heading to twenty, the font sizeof other headings of the same type (e.g., chapter headings, sectionheadings, figure headings, media heading, etc.) throughout the digitalbook can be automatically changed to twenty. If the author changes thefont type of a figure label, other figure labels throughout the digitalbook can be automatically changed to be consistent with the changed fonttype, for example. Thus, style and format changes can be automaticallyapplied to different types of elements of a digital book based onelement type.

In some implementations, the author can automatically generate a newparagraph style by directly editing an element of the digital book. Forexample, headers, figure descriptions, image captions, and text thatmake up the body of the digital book can all have paragraph styles. Insome implementations, the author can select and edit an element tocreate a new paragraph style for similar types elements. For example,all section headers within the digital book can have a common paragraphstyle. If the author selects and edits one section header (e.g., changesfont type, font size, font color, etc.) a new section header paragraphstyle can be automatically generated based on the attributes of theedited section header. The newly generated section header paragraphstyle can then be automatically applied to other section headersthroughout the digital book.

In some implementations, changes can be automatically applied to otherelements based on the paragraph style of the elements. For example,different types of digital book elements can have the same paragraphstyle. If the author changes the paragraph style of one of the digitalbook elements (e.g., by directly editing the element), the style changescan be automatically applied to other elements that have the sameparagraph style. For example, if figure labels and body text of thedigital book have the same paragraph style and the author changes thefont of a figure label, the font change can be automatically applied tothe other figure labels and the body text of the digital book eventhough the figure labels and body text are different types of digitalbook elements. Thus, style and format changes can be automaticallyapplied to different types of elements of a digital book based on ashared or common paragraph style.

In some implementations, previous changes made to an element will bepreserved. If the author has previously manually or directly changed anattribute of an element, the previously changed element will not beautomatically changed based on a change made to a similar element. Forexample, if the author has previously manually or directly changed thefont color of the “Chapter 4” heading to blue, a subsequent change tothe font color of the “Chapter 1” heading will not cause an automaticchange in font color of the “Chapter 4” heading.

The book outline view shown in sidebar 104 is a hierarchical structureof thumbnail images and icons (collectively, “nodes”) that can betouched or clicked by the author to navigate the digital book. Each“node” represents a part of the digital book, such as title page, mediaintroduction (e.g., for branding), a table of contents (TOC), and thebeginning page of chapters, lessons and topics. In the example shown,the template is a textbook template. The textbook template can include aTOC and a number of chapters. In some implementations, each chapter caninclude a number of lessons and each lesson can include a number oftopics. A hybrid glossary and index (not shown) can also be included asa node in the structure. In the example shown, page 132 of the digitalbook is the page that is currently displayed on composition area 106 asindicated by the highlighted corresponding thumbnail image in sidebar104.

In some implementations, the hierarchical structure in sidebar 104 isautomatically determined based on paragraph styles that have beenapplied to the text. For example, a predefined or custom paragraph stylecan be applied to text header 107 to indicate that the header is thestart of a “topic.” The page of the digital book containing header 107(page 132) is automatically converted into a thumbnail image and placedat the appropriate location in the hierarchical structure. By usingparagraphs styles as a differentiator, the outline of the digital bookcan be created automatically from a text source (e.g., a bookmanuscript).

Toolbar 102 includes Orientation icon 103 which can be toggled by theauthor to display GUI 100 in landscape or portrait orientation, so thatthe author can determine how the digital book will look and function inboth portrait and landscape orientations when presented on an e-bookreader. In some implementations, landscape orientation is a preferreddefault orientation for performing layout and editing tasks in theauthoring application.

Toolbar 102 includes various other icons, including a Preview Deviceicon for previewing authored content on various devices and icons foradding text boxes, shapes, tables, charts, media and comments to thedigital book. Toolbar 102 also includes icons for invoking interactiveelements (e.g., widgets) and corresponding widget inspectors forcustomizing the layout and user interactions of the widgets. Forexample, when widget icon 108 in toolbar 102 is selected by the author amenu of widget options is displayed in GUI 100. The author can drag anddrop thumbnail image 112 corresponding to a “gallery” widget ontocomposition area 106 to add a “gallery” widget to the digital book, asdescribed in more detail in reference to FIG. 2.

Other widgets types can include but are not limited to a visualdictionary widget, a movie widget, an HTML widget, a 3D animationwidget, a presentation widget, a diagram widget and a review widget(e.g., quiz widget).

One type of interactive element is referred to herein as a “widget.” Asused herein, a “widget” is a container for presenting rich media andgraphical content, such as digital images, movies, animated diagrams andgraphs and slide presentations. A “container” is a class whose instancesare collections of other objects, and can be used to store objects in anorganized way following specific access rules. The layout and userinteractions for a given widget can be set by the author through acorresponding widget inspector, as described in reference to FIGS. 3Aand 3B.

The interactive elements described below can have one or more of titles,labels, captions and accessibility descriptions. The title, label,caption or accessibility description becomes a signifier to theauthoring application that the content referenced by these items is anillustration in the digital book. Thus, in an e-book reader, the usercan search for terms and receive a search result with two result sets:one for text and one for media objects. A search engine in the authoringapplication will search the text in titles, labels, captions,accessibility descriptions and metadata of media objects when generatingsearch results.

Exemplary Gallery Widget

FIG. 2 illustrates an exemplary gallery widget 200 for inserting agallery of digital images in the digital book. In some implementations,gallery widget 200 can be added to the digital book by draggingthumbnail image 112 from a menu onto composition area 106, as shownFIG. 1. Gallery widget 200 can includes handles 212 to allow the authorto resize the widget manually on the book page.

Gallery widget 200 is associated with anchor 204, which can be selectedand dragged to a desired location on composition area 106 by the author.In this example, the author has placed anchor 204 after the word “brain”in the currently displayed text of page 132. Anchor 204 is used tomaintain a page relative location for gallery widget 200 so that gallerywidget 200 will always be displayed on the same page and page locationas its corresponding anchor 204. If the author adds additional contentto the current page such that anchor point 204 flows into the next pageof the digital book, gallery widget 200 will move to the next page atthe location identified by the position of anchor 204. Although anchor204 is inserted within the text, the anchored object (e.g., media,widget) can be placed anywhere on the page (including where there is notext) and text flows around the object as needed.

In some implementations, Gallery widget 200 can include variouscomponents including figure label (with enumeration) 203, media displayarea 202, caption area 206, thumbnail track 208 and full screen button210.

Figure label 203 can be edited directly by the author by tapping orclicking label 203. Figure label 203 is also enumerated. The enumerationautomatically updates (e.g., renumbers sequentially) based on thelocation of the widget relative to other widgets of the same widget typein the digital book. References to the widget in the text will also beautomatically updated. This feature eliminates the need for the authorto update manually figure labels each time the order of the figures ischanged.

Media display area 202 is the portion of gallery widget 200 thatdisplays media such as digital images. The author can perform atap-slide gesture to the left or right in area 202 to move to theprevious or next image in the gallery. The author can also pinch anddrag the image in media display area 202 to zoom and pan the image whenin full screen view, which can be invoked by full screen button 210. Infull screen view, the media displayed in media display area 202 consumesa larger portion of GUI 100. Full screen button 210 can be a tap buttonthat the author taps to enter and exit full screen view.

Caption area 206 of gallery widget 200 is where the author can addmanually caption text for the media displayed in media display area 202.

Thumbnail track 208 is a navigation control that allows the author tonavigate directly to a specific image in the gallery by a single tap ona thumbnail. The thumbnails can be centered horizontally on the screen.In some implementations, thumbnail track 208 allows for various modes ofnavigation. In a first navigation mode, the author can drag thethumbnail track to move to the next/previous page of thumbnails. In asecond navigation mode, navigation dots can be included on thumbnailtrack 208. The second mode is useful when thumbnail track 208 has morethumbnail images than can fit on the width of the frame. The author cantap on the navigation dot area to move from page to page. In a thirdnavigation mode, the navigation dots are replaced by a “current image”of “total number of images” format. The third mode is useful when thenumber of navigation dots exceed a predetermined number (e.g., 10).

FIGS. 3A and 3B illustrate an exemplary widget inspector 300 for gallerywidget 200 of FIG. 2. Widget inspector 300 can be invoked when theauthor selects the Inspector icon from toolbar 102. In someimplementations, widget inspector 300 is a user interface element that“floats” on GUI 300 and can be dragged by the user to any desiredlocation in GUI 300.

Widget inspector 300 provides various options for customizing gallerywidget 200. In some implementations, widget inspector 300 has two modes:layout mode and user interaction mode. FIG. 3A illustrates an exemplarylayout mode and FIG. 3B illustrates an exemplary user interaction mode.For both modes, the top portion of widget inspector 300 includes toolbar301 that can include icons for invoking tools for editing the layout ofgallery widget 200, including tools for adding text, charts, tables,colors, fonts, etc. Both modes also include toggle button 302 fortoggling between layout mode and interaction mode.

Referring to FIG. 3A, under toggle button 302 is layout menu 304 wherethe author can choose between various predefined layout prototypes 306for gallery widget 200. Located beneath layout menu 304 is title andcaption settings 308, 310 for allowing the author to customize the waytitle and captions are displayed by widget 200. There is a settingoption for “individual caption per image” and an option for “samecaption for all the images.” Located beneath settings 308, 310 isbackground button 312 for choosing to show/hide the widget's backgroundframe. The author can also manipulate slider control 316 to choose anouter margin distance.

Located beneath slider control 316 is accessibility description area 314to allow the author to add a description manually for vision-impairedusers of the digital book. When a visually impaired user selects anaccessibility mode (e.g., “voiceover” mode) on an e-book reader, theaccessibility description can be read aloud by a text-to-speech enginein the e-book reader.

Referring to FIG. 3B, button 318 allows the author to choose whether tolet a user of the e-book reader view content in full screen. Thumbnailbutton 320 allows the author to hide or display thumbnails in thumbnailtrack 208. When hidden, the thumbnails can be replaced with navigationdots. If there are more than n dots (e.g., 10), image numbers can bedisplayed instead of the navigation dots (e.g., 1 of 21).

Gallery media file list 322 displays all the files added to gallerywidget 200. The image currently being displayed in media display area202 can be highlighted with a colored background (e.g., bluebackground).

The “+” and “−” icons 326 can be used by the author to insert media intogallery widget 200. When pressed, a media browser can be displayed (notshown) to allow the author to select a media file. When a media file isselected from media file list 322, the author can use the “−” icon toremove it from gallery widget 200.

Image accessibility description area 324 allows the author to adddescription for the selected media file in media file list 322. Thedescription can be read aloud to a visually impaired user by atext-to-speech engine in the e-book reader when operated in anaccessibility mode (e.g., “voiceover” mode).

FIG. 4 illustrates an exemplary HUD 400 for resizing media inserted ingallery widget 200. HUD 400 can include slider control 406 and “scale tofit” button 402 or “scale to fill” button 504. Depending on which button402, 404 is selected, slider control 400 can be used by the author toresize the media to fit within media display area 202 or to fill mediadisplay area 202.

Exemplary Work Flow for Creating Widgets

FIG. 5 is a flow diagram for an exemplary process 500 of adding acustomized widget to a digital book (e.g., a customized gallery widget).Process 500 can begin when an author adds a widget to a page of adigital book (502). The widget can be added by dragging and dropping awidget icon onto a virtual composition area of a GUI of an authoringapplication, as described in reference to FIGS. 1 and 2.

Process 500 can continue by inserting widget content into the widget(404). The content can be selected for insertion from a media browser orby dragging and dropping media from a media source into a media displayarea of the widget, as described in reference to FIG. 2.

Process 500 can continue by resizing the widget (506). Resizing can beperformed by the author manually using handles, as described inreference to FIG. 2.

Process 500 can continue by resizing content (508). The author canresize content using a resizing HUD, as described in reference to FIG.4.

Process 500 can continue by editing the captions and title of the widget(510). The author can edit the captions and title by typing directly inthe figure label and caption areas of the widget, as described inreference to FIGS. 2 and 3.

Process 500 can continue by customizing the appearance of the widget(512) using the corresponding widget inspector, as described inreference to FIGS. 3A, 3B.

Exemplary Conversion of Media Objects to Widgets

FIG. 6 illustrates an exemplary process for converting a primitive(e.g., a media object) into a widget. In some implementations, an authorcan drag and drop a media object 600 from media source onto compositionarea 106. Media object 600 can have handles for allowing the author toresize media object 600. The author can automatically convert mediaobject 600 into a widget by tapping (or clicking) media object 600 toinvoke menu 602. An option in menu 602 can be selected to convert mediaobject 600 into a widget. Selecting this option exposes submenu 604listing widget types. The author can select a desired target widget typefrom submenu 604, and the authoring application automatically convertsmedia object 600 into a widget of the selected target widget type. Forexample, the user could convert media object 600 to a gallery widget,and the media object would be an image in the gallery.

FIG. 7 is a flow diagram of an exemplary process 700 for converting amedia object (e.g., a digital image) into a widget. Process 700 canbegin when an author adds an image to a page of a digital book (702).The image can be dragged and dropped from a desktop, media browser orother source and dropped onto the composition area 106 of GUI 100.

Process 700 can continue when the author exposes a menu of options (704)and selects an option to convert the media object into a widget. In someimplementations, selecting this option exposes a submenu of widget typesthat can be selected by the author.

Process 700 automatically converts the media object to a widget of theselected widget type (706), displays the widget on the composition areaand exposes a corresponding widget inspector (708). The media object isadded to the widget. The widget inspector can be used by the author toadjust the layout and user interactions of the widget on an e-bookreader, as described in reference to FIGS. 3A, 3B.

Exemplary Presentation Widget

FIG. 8 illustrates an exemplary presentation widget 800 for inserting amultimedia presentation in a digital book. Presentation widget 800 canbe added to the digital book by dragging and dropping its correspondingicon from menu 110 onto composition area 106 as described in referenceto FIG. 1. The Media icon in toolbar 102 can be used to invoke a mediabrowser to allow the author to select a multimedia presentation to addto presentation widget 800.

In some implementations, presentation widget 800 can include label 803,media display area 804, transport controls 808 and caption area 810.Label 803 includes enumeration that updates automatically as previouslydescribed in reference to FIG. 2. A full screen button is alsoavailable.

The author can add a multimedia presentation to presentation widget 800using corresponding widget inspector 300, as described in reference toFIG. 9B. alternatively, a multimedia presentation file can be draggedfrom a source (e.g., desktop, media browser) and dropped into mediadisplay area 804. The author can play the multimedia presentation bytouching or clicking play button 806. Optional transport control 808 canbe added to widget 808 to advance slides of the multimedia presentationand to adjust volume. Caption area 810 can be edited directly by theauthor. A virtual keyboard can be provided for this purpose. A user ofan e-book reader can scroll the caption text when there is more textthan can fit in caption area 810.

FIGS. 9A and 9B illustrate an exemplary widget inspector 300 forpresentation widget 800. FIG. 9A illustrates a layout mode for widgetinspector 300 and FIG. 9B illustrates a user interaction mode for widgetinspector 300.

In layout mode, the author can select a layout, title and captionsettings, choose to show/hide the background frame and outer margindistance, and manually input an accessibility description, which can beread aloud during playback on an e-book reader. For example, the authorcan select a label style using menu 311. In some implementations, theaccessibility description is automatically populated with thedescription for the figure label.

In interaction mode, the user can select full screen view and navigationsettings 313, 315, for showing/hiding a transport control and forenabling/disabling user interaction, respectively. In addition to dragand drop, the user can add a multimedia presentation to widget 800 byentering the pathname for the file in text box 317 and pressing insertbutton 327.

Exemplary Movie Widget

FIGS. 10A and 10B illustrate an exemplary movie widget 1000 andcorresponding widget inspector 300. FIG. 10A illustrates the componentsof movie widget 1000, which include a label and enumeration, videodisplay 1001, playback control 1002 and caption area 1003. FIG. 10Billustrates the corresponding widget inspector 300. Widget inspector 300includes start/stop control 330, poster frame control 332, playautomatically setting 333, repeat control 336, volume control 338 andtransport control 340. These controls allow the author to determine howvideo will be played in widget 1000 on an e-book reader. When the movieis playing on an e-book reader player controls can be displayed,including but not limited to a play/pause button, fast forward/reversebutton, bookmark and a scrubber control.

Exemplary HTML Widget

FIGS. 11A and 11B illustrate an exemplary HTML widget 1100 andcorresponding widget inspector 300. FIG. 11A illustrates a layout ofHTML widget 1100 and FIG. 11B illustrates the corresponding widgetinspector 300.

HTML widget 1100 can be added to the digital book using the same dragand drop operation previously described in reference to FIG. 1. Thecomponents of HTML widget can include label 1101, media display area1102 and caption area 1103. An author can load HyperText Markup Language(HTML) content (e.g., a Web page) by typing a pathname for the HTML filein text box 317 and pressing insert button 327. The content is displayedin media display area 1102. The author can also specify full screen viewcapability with setting 328.

Exemplary Review (Quiz) Widget

FIG. 12 illustrates an exemplary review widget 1200 for inserting reviewmaterials (e.g., quizzes) in a digital book. Review widget 1200 can beadded to the digital book using the same drag and drop method previouslydescribed in reference to FIG. 1. Review widget 1200 can be useful fortextbooks, where quiz sections are often included at the end of alesson. Review widget can display various common question typesincluding but not limited to multiple choice, drag to target, matchcolumns, fill-in the blanks and order lists.

In some implementations, review widget 1200 can include a label and fullscreen view button, which function as previously described in referenceto FIG. 2. Review widget 1200 also includes question area 1201 andquestion type-specific answer area 1202. Answer area 1202 is where astudent can select one or more answers to the question in questions area1201. Correct answer feedback is provided to the student.

Buttons 1204 allow a student to navigate through questions and to checkanswers. For example, a student can use the Previous and Next buttons tonavigate to a previous or next question and press the Check Answerbutton to check answers.

FIG. 13A illustrates an exemplary widget inspector 300 for review widget1200. FIG. 13B illustrates various question types that can be selectedby the author for review widget 1200.

In some implementations, widget inspector 300 can include a questionpanel 1300, “+” and “−” icons 1301 and setting 1302 for allowingmultiple answers to a question. Widget inspector 300 also includes atoolbar, toggle button and setting to allow full screen view. The layoutmode for review widget 1200 is the same as the other widgets previouslydescribed, and will not be described further.

Question panel 1300 includes a list of questions comprising the quiz.The author can add and delete questions using “+” and “−” icons 1301,respectively. When the author presses the + icon, menu 1305 of iconsrepresenting question types is exposed, as shown in FIG. 13B. In theexample shown, question types can include but are not limited tomultiple choices, multiple choice with horizontal image, multiple-choicevia images, drag the label to the image, and drag the thumbnail to theimage. In this example, the author selected an icon representingmultiple choice with horizontal image format type, which selection isindicated by a highlighted icon in menu 1305. Setting 1302 allows theauthor to indicate multiple correct answers for a question.

The author can type the question directly in question area 1201 orquestion panel 1300. Each question has a control 1304 for selectingcorrect answers.

FIGS. 14A and 14B illustrate an exemplary review widget 1200 andcorresponding inspector 300 in user interaction mode. In FIG. 13B, theauthor selected a multiple choice with horizontal image question format.FIG. 14A illustrates the resulting review widget 1200 that will beinserted in the digital book. As illustrated in FIG. 14B, widgetinspector 300 for review widget 1200 includes two questions, each withfour possible answers A, B, C and D, one of which can be selected by theauthor from menu 1305. In this example, FIG. 14A illustrates selectingan answer for question #2 in question list 1300 (e.g., answer D).Digital image file 1402 can be dragged from a source (e.g., desktop,media browser) directly into widget 1200.

FIGS. 15A and 15B illustrate another exemplary multiple choice questiontype and corresponding widget inspector 300. In this example, reviewwidget 1200 displays question #3 in the quiz: a “multiple choice viaimages” question type. This question type includes a grid 1501 of fourimages where each image has a check circle that can be checked by astudent to indicate a correct answer. As illustrated in FIG. 15B, thereare three questions shown in question panel 1300 and the third questionhas four possible answers. Since the “allow multiple selection” 1302setting has been checked, the student can select two of the four imagesas the correct answer to the question.

FIGS. 16A and 16B illustrate another exemplary multiple choice questiontype and corresponding widget inspector 300. In this example, reviewwidget 1200 displays question #4 in the quiz: a “drag the label toimage” question type. As illustrated in FIG. 16A, this question typedisplays an image in media display area 1601 and labels 1602. Labels1602 have targets 1603. The student can drag a target 1603 over alocation on the image to indicate an answer. Note that in this examplethere are two possible answers to question number 4, as indicated inquestion panel 1300 of widget inspector 300.

FIGS. 17A and 17B illustrate another exemplary multiple choice questiontype and corresponding widget inspector 300. In this example, reviewwidget 1200 displays question #1 in the quiz: a “drag the thumbnail toimage” question type. As illustrated in FIG. 17A, this question typedisplays an image in media display area 1701 and thumbnails 1702.Thumbnails 1702 have targets 1703. The student can drag a target 1703over a location on the image to indicate an answer. Note that in thisexample there are two possible answers to question #1 as indicated inquestion panel 1300 of widget inspector 300.

Exemplary Visual Dictionary Widget

FIGS. 18A and 18B illustrate an exemplary visual dictionary widget 1800and corresponding widget inspector 300, where a HUD 1804 is used to seta first zoom level for a first placard 1803. Visual dictionary widget1800 allows an author to place placards on content displayed in mediadisplay area 1801. Content (e.g., digital image, diagram, graphicalobject) can be dragged and dropped into media display area 1801.Placards can be added or deleted from media display area 1801 with “+”and “−” icons. In some implementations, placards can have targets 1802,which can be dragged by the author to desired locations on the contentdisplayed in media display area 1801.

Referring to FIG. 18A, HUD 1804 can include a slider control, which canbe manipulated by the author to zoom in or out media display area 1801.The resulting zoom level is made persistent with the first placard 1803(placard A). When a student touches or clicks on the first placard 1803in the visual dictionary widget on an e-book reader, media display area1801 is automatically adjusted to the zoom level specified by the author(e.g., 100% for placard A).

FIG. 18B illustrates the corresponding widget inspector 300 for visualdictionary widget 1800 in user interaction mode. Widget inspector 300includes a setting for showing/hiding a full screen view button and asetting 1809 for showing/hiding a transport control on widget 1800.Widget inspector 300 includes view pane 1805 showing each placard. Thezoom level is set for the placard that is currently highlighted in viewpane 1805, which in this example is the placard A. A “same location forall descriptions” setting 1806 allows the placard descriptions to appearin the same location in the media display area 1801 when selected by auser of an e-book reader.

FIGS. 19A and 19B illustrate an exemplary visual dictionary widget 1800and corresponding widget inspector 300, where HUD 1804 is used to set asecond zoom level for a second placard 1807 (e.g., 120%) having a target1808. The author can type a description directly in second placard 1807by tapping or clicking placard 1807 and then typing the desired textdirectly into placard 1807.

FIGS. 20A and 20B illustrate an exemplary visual dictionary widget andcorresponding widget inspector 300, including transport controls 2001and common location 2000 for placard descriptions. In this example,setting 1806 is set, forcing all placard descriptions to be shown atcommon location 2000. Transport controls 2001 allow a user of an e-bookreader to navigate different content in visual dictionary widget 1800.

Other Exemplary Interactive Elements

In some implementations, a 3D animation widget can be inserted in adigital book. The 3D animation widget can be configured to import (e.g.,through a drag and drop operation) a 3D animation file, such as aCollada file. Collada (COLLAborative Design Activity) is a well-knownand publicly available open source specification that establishes aninterchange file format for interactive 3D applications. Collada definesan open standard XML schema for exchanging digital assets among variousgraphics software applications that might otherwise store their assetsin incompatible file formats. Collada documents that describe digitalassets are XML files, usually identified with a .dae (digital assetexchange) filename extension.

Using a widget inspector, the author can specify animation speeds andapply settings that restrict the animation. For example, a first settingcan be specified by the author to set a rotation speed of a 3D objectand a second setting can be specified by the author to restrict theangle of rotation in one or more axes of rotation as desired.

Exemplary Glossary Tool Bar

FIG. 21 illustrates GUI 100 of FIG. 1 with an exemplary glossary toolbar 2101. Glossary toolbar 2101 can be exposed by selecting a glossarytoolbar option from a drop-down menu or pressing an icon in a widgetinspector 300. In some implementations, the author can populate aglossary with terms using glossary toolbar 2101. To select a term to beadded to the glossary, the author can highlight the term in the textwith a finger or mouse. In the example shown, the author highlighted theterm “neurons.” The highlighted term can automatically populate text box2102 used for adding new glossary terms. Alternatively, the author cantype the term “neurons” in text box 2102. After text box 2102 ispopulated, the author can press add term button 2103 to add the term tothe glossary and the term can be visually embellished in the digitalbook to indicate its inclusion in the glossary (e.g., place a framearound the term or change its color). The author can press glossarybutton 2104 to see a list of glossary terms 2105, which can be displayedin alphabetical order. In some implementations, an author can designatea glossary term by highlighting the term in different colors. Thedifferent colors can be used to filter for viewing in the glossary.Glossary terms can also be auto-capitalized and de-pluralized.

Exemplary Glossary/Index Page

FIG. 22 illustrates an exemplary hybrid glossary/index page. Theglossary/index page includes glossary panel 107, definition area 109,related glossary term area 111 and term reference area 113. The hybridglossary/index page can be selected by the author for display in GUI 100by selecting the glossary node 117 in sidebar 104. The hybridglossary/index page conveniently merges a glossary and index into asingle user interface. Such a feature is advantageous over conventionaldigital books where the glossary and index are often separated.

Glossary panel 107 can include search box 2202 and a list of glossaryterms, each having a status icon 2203 for determining the status of aterm. In the example shown, the terms “brain,” “brain stem” and“neurons” are listed in glossary panel 107. The + and − icons can beused to add or delete terms from glossary panel 107.

Definition area 109 can be used to edit the definition of a term. Mediaobject 2200 (or a widget) can be inserted in definition area 109 usingpreviously described methods.

The author can relate glossary terms by dragging a glossary term fromglossary panel 107 and dropping the glossary term in related glossaryterm area 111. In the example shown, the author dragged the term“neurons” from glossary panel 107 and dropped the term in glossary termarea 111, relating the term “neurons” to the term “brain.” Note that“brain” is the currently selected glossary term, as indicated by ahighlight in glossary panel 107.

FIG. 23 illustrates an exemplary process for adding term references tothe glossary/index. In some implementations, a term reference can beadded to the hybrid glossary/index page by highlighting the term intext. In the example shown, the author highlighted the term “neurons”using a finger or mouse, causing text box 2301 to be auto-populated withthe term “neurons.” The author presses add button 2302 to add a termreference for “neurons.” This procedure can be repeated for eachinstance of the term “neurons” in the digital book. The first occurrenceof a term reference is referred to as the primary definition.

FIG. 24 illustrates an exemplary glossary/index page with an added termreference 2400. In the example shown, term reference 2400 (Ch 1: title,p132) is added to term reference area 113. Find term button 2401 can bepressed to expose a search pane to allow the author to search pages ofthe digital book for more instances of the term “brain,” so that theauthor can add those instances as term references. Term references canbe “links” that can be touched or clicked by a user of an e-book readerto navigate to pages in the digital book that contain the term. Termreference links can link to terms contained in text of figure labels andcaptions.

FIG. 25 illustrates an exemplary process for finding term instances inthe digital book. Search pane 2500 can include toggle 2501 for togglingbetween simple and advanced search modes. In this example, simple searchmode is selected, exposing Find and Replace boxes and navigation buttons2502. The author can use search pane 2500 to navigate the digital book,finding instances of a specified term, which is the term “neurons” inthis example. When instances of the term are found, the author can addthe term references as previously described. Advanced search modeexposes options for creating more complex search queries.

FIG. 26 illustrates an exemplary hybrid glossary/index page includingterm references. In the example shown, term references include primarydefinition 2400 and secondary term references 2600. Button 2602 can bepressed by the author to expose secondary term references 2600. Termreferences 2400, 2600 can reference terms in any text of the digitalbook, including text contained in figure labels or captions of widgets.

FIG. 27 illustrates an exemplary process for managing links of termreferences. In some implementations, an author can select a termreference with a finger or mouse and menu 2700 is exposed with a numberof link operations. In the example shown, link operations can includebut are not limited to: setting a selected term reference as a primarydefinition; going to a link; resetting link text; and removing a link.

Exemplary Process For Building a Digital Book

FIG. 28A is a flow diagram of an exemplary process 2800 for building adigital book. Process 2800 can be implemented by a digital bookauthoring application 2972 running on architecture 2900, described inreference to FIG. 29.

In some implementations, process 2800 can begin by providing a GUIincluding a composition area (2802) and receiving and displaying textfrom a text source within the composition area (2804). For example, atext file can be imported or dragged and dropped from a variety ofsources, including but not limited to a desktop, a disk or imported overa network. A portion of text can be imported from a text file using copyand paste operations. When the text is received, the authoringapplication can automatically create one or more pages to accommodatethe size of the text file. In some implementations, the author can firstselect a book template from a template chooser prior to importing thetext. An example GUI is GUI 100 of FIG. 1, where composition area 106displays the imported text.

Process 2800 can continue by receiving first input selecting aninteractive element type from one or more interactive element types tobe inserted in composition area (2806). For example, a pull-down menucan present icons representing a number of widget types (e.g., gallerywidget, review widget). An author can drag the icon for the desiredwidget from the menu into the GUI.

Process 2800 can continue by inserting an interactive element of theselected interactive element type in the digital book according to ananchor position in the text (e.g., a user selectable anchor position)(2808), as described in reference to FIG. 2. Handles can be provided onthe widget to allow the author to resize the widget in the text.

Process 2800 can continue by receiving a second input selecting contentto be inserted in the interactive element (2810) and inserting thecontent in the interactive element (2812). For example, if the widget isa gallery widget, the user can insert or drag and drop digital imagesfrom a desktop or media browser into a media display area of the gallerywidget, as described in reference to FIG. 2. The image can be resized bythe author to fit or fill the media display area of the gallery widget,as described in reference to FIG. 4.

FIG. 28B is a flow diagram of an exemplary process 2814 for building adigital book. Process 2814 can be implemented by a digital bookauthoring application 2972 running on architecture 2900, described inreference to FIG. 29.

In some implementations, process 2814 can begin by receiving text from atext source (2816) and displaying the text in a GUI (2817).

Process 2814 can continue by receiving input selecting a reviewinteractive element type to be inserted in text (2818), and responsiveto the input, inserting a review interactive element in the text (2819).The review interactive element can include a question area for receivinga question and an answer area for receiving one or more answers to thequestion. The answer area can be configured according to a questiontype.

FIG. 28C is a flow diagram of an exemplary process 2820 for building adigital book. Process 2820 can be implemented by a digital bookauthoring application 2972 running on architecture 2900, described inreference to FIG. 29.

In some implementations, process 2820 can begin by receiving text from atext source (2821) and displaying the text in a GUI (2822).

Process 2820 can continue by receiving input selecting a visualdictionary interactive element type to be inserted in the text (2823),and responsive to the input, inserting the visual dictionary interactiveelement in the text. The visual dictionary interactive element caninclude a media display area for receiving content and placards. Theplacards can be configured to be dragged to one or more locations on thecontent (2824).

FIG. 28D is a flow diagram of an exemplary process 2825 for building adigital book. Process 2825 can be implemented by a digital bookauthoring application 2972 running on architecture 2900, described inreference to FIG. 29.

In some implementations, process 2825 can begin by displaying a hybridglossary and index page for interacting with a hybrid glossary and indexof a digital book (2826). The glossary and index page can include afirst area displaying a definition of a first glossary term, a secondarea displaying a list of glossary terms including the first glossaryterm and other glossary terms, a third area displaying glossary termsrelated to the first glossary term and a fourth area displayingreferences to the first glossary term. Responsive to dragging a secondglossary term from the list in the second area to the third area, thesecond glossary term is automatically related to the first glossary term(2827).

Example Device Architecture

FIG. 29 is a block diagram of an exemplary architecture 2900 for adevice capable of running an application for authoring content fordigital books. Architecture 2900 can include memory interface 2902, dataprocessors, image processors and/or central processing units 2904 andperipherals interface 2906. Memory interface 2902, processors 2904and/or peripherals interface 2906 can be separate components or can beintegrated in one or more integrated circuits. The various components inthe device can be coupled by one or more communication buses or signallines.

Sensors, devices, and subsystems can be coupled to peripherals interface2906 to facilitate multiple functionalities. For example, positioningsystem 2916, motion sensor 2910, light sensor 2912, and proximity sensor2914 can be coupled to the peripherals interface 2906 to facilitatevarious positioning, orientation, lighting, and proximity functions. Forexample, in some implementations, light sensor 2912 can be utilized tofacilitate adjusting the brightness of touch screen 2946. In someimplementations, motion sensor 2911 (e.g., an accelerometer,velicometer, or gyroscope) can be utilized to detect movement of thedevice. Accordingly, display objects and/or media can be presentedaccording to a detected orientation, e.g., portrait or landscape.

Other sensors can also be connected to peripherals interface 2906, suchas a temperature sensor, a biometric sensor, a gyroscope, or othersensing device, to facilitate related functionalities.

Location determination functionality can be facilitated throughpositioning information from positioning system 2916. Positioning system2919, in various implementations, can be a component internal to thedevice, or can be an external component coupled to the device (e.g.,using a wired connection or a wireless connection). In someimplementations, positioning system 2916 can include a Global NavigationSatellite System (GNSS) receiver or chipset, such as a GlobalPositioning System (GPS) receiver or chipset, and a positioning engine(e.g., including a Kalman filter) operable to derive positioninginformation from received GPS satellite signals. In otherimplementations, positioning system 2916 can include a magnetometer toprovide direction indications (e.g., magnetic or true North). In stillfurther implementations, positioning system 2916 can use wirelesssignals (e.g., cellular signals or 3G, WiFi or IEEE 802.11 signals) todetermine location information associated with the device. Hybridpositioning can also be used. Other positioning systems are possible.

Camera subsystem 2920 and optical sensor 2922, e.g., a charged coupleddevice (CCD) or a complementary metal-oxide semiconductor (CMOS) opticalsensor, can be utilized to facilitate camera functions, such ascapturing photographs and video clips.

Communication functions can be facilitated through one or morecommunication subsystems 2924. Communication subsystem(s) can includeone or more wireless communication subsystems and one or more wiredcommunication subsystems. Wireless communication subsystems can includeradio frequency receivers and transmitters and/or optical (e.g.,infrared) receivers and transmitters. Wired communication system caninclude a port device, e.g., a Universal Serial Bus (USB) port or someother wired port connection that can be used to establish a wiredconnection to other computing devices, such as other communicationdevices, network access devices, a personal computer, a printer, adisplay screen, or other processing devices capable of receiving and/ortransmitting data. The specific design and implementation ofcommunication subsystem 2924 can depend on the communication network(s)or medium(s) over which the device is intended to operate. For example,the device may include wireless communication subsystems designed tooperate over a global system for mobile communications (GSM) network, aGPRS network, an enhanced data GSM environment (EDGE) network, 802.xcommunication networks (e.g., Wi-Fi, WiMax, or 3G networks), codedivision multiple access (CDMA) networks, and a Bluetooth™ network.Communication subsystems 2924 may include hosting protocols such thatthe device may be configured as a base station for other wirelessdevices. As another example, the communication subsystems can allow thedevice to synchronize with a host device using one or more protocols,such as, for example, the TCP/IP protocol, HTTP protocol, UDP protocol,and any other known protocol.

Audio subsystem 2926 can be coupled to speaker 2928 and one or moremicrophones 2930. One or more microphones 2930 can be used, for example,to facilitate voice-enabled functions, such as voice recognition, voicereplication, digital recording, and telephony functions.

I/O subsystem 2940 can include touch screen controller 2942 and/or otherinput controller(s) 2944. Touch-screen controller 2942 can be coupled toa touch surface 2946. Touch surface 2946 and touch screen controller2942 can, for example, detect contact and movement or break thereofusing any of a number of touch sensitivity technologies, including butnot limited to capacitive, resistive, infrared, and surface acousticwave technologies, as well as other proximity sensor arrays or otherelements for determining one or more points of contact with touchsurface 2946 or proximity to touch surface 2946.

Other input controller(s) 2944 can be coupled to other input/controldevices 2948, such as one or more buttons, rocker switches, thumb-wheel,infrared port, USB port, and/or a pointer device such as a stylus. Theone or more buttons (not shown) can include an up/down button for volumecontrol of speaker 2928 and/or microphone 2930. A user of the device maycustomize a functionality of one or more of the buttons. Touch surface2946 can be used to implement virtual or soft buttons and/or a keyboard.

In some implementations, the device can present recorded audio and/orvideo files, such as MP3, AAC, and MPEG files. In some implementations,the device can include the functionality of an MP3 player, such as aniPhone™.

Memory interface 2902 can be coupled to memory 2950. Memory 2950 caninclude high-speed random access memory and/or non-volatile memory, suchas one or more magnetic disk storage devices, one or more opticalstorage devices, and/or flash memory (e.g., NAND, NOR). Memory 2950 canstore operating system 2952, such as Darwin, RTXC, LINUX, UNIX, OS X,WINDOWS, or an embedded operating system such as VxWorks. Operatingsystem 2952 may include instructions for handling basic system servicesand for performing hardware dependent tasks. In some implementations,the operating system 2952 can be a kernel (e.g., UNIX kernel).

Memory 2950 may also store communication instructions 2954 to facilitatecommunicating with one or more additional devices, one or more computersand/or servers. Communication instructions 2954 can also be used toselect an operational mode or communication medium for use by thedevice, based on a geographic location (obtained by GPS/Navigationinstructions 2968) of the device. Memory 2950 may include graphical userinterface instructions 2956 to facilitate graphic user interfaceprocessing, such as described in reference to FIGS. 1-28; sensorprocessing instructions 2958 to facilitate sensor-related processing andfunctions; phone instructions 2960 to facilitate phone-related processesand functions; electronic messaging instructions 2962 to facilitateelectronic-messaging related processes and functions; web browsinginstructions 2964 to facilitate web browsing-related processes andfunctions; media processing instructions 2966 to facilitate mediaprocessing-related processes and functions; GPS/Navigation instructions2968 to facilitate GPS and navigation-related processes andinstructions, e.g., mapping a target location; camera instructions 2970to facilitate camera-related processes and functions; and instructions2972 for a content authoring application for authoring digital books, asdescribed in reference to FIGS. 1-28. Memory 2950 may also store othersoftware instructions (not shown), such as a search engine, Web videoinstructions to facilitate web video-related processes and functions;and/or Web shopping instructions to facilitate web shopping-relatedprocesses and functions. In some implementations, media processinginstructions 2966 are divided into audio processing instructions andvideo processing instructions to facilitate audio processing-relatedprocesses and functions and video processing-related processes andfunctions, respectively.

Each of the above identified instructions and applications cancorrespond to a set of instructions for performing one or more functionsdescribed above. These instructions need not be implemented as separatesoftware programs, procedures, or modules. Memory 2950 can includeadditional instructions or fewer instructions. Furthermore, variousfunctions of the device may be implemented in hardware and/or insoftware, including in one or more signal processing and/or applicationspecific integrated circuits.

Network-Operating Environment for a Device

FIG. 30 is a block diagram of an example network-operating environment3000 for the device of FIG. 29. Devices 3002 a and 3002 b cancommunicate data over one or more wired and/or wireless networks 3010.For example, wireless network 3012, e.g., a cellular network, cancommunicate with wide area network (WAN) 3014, such as the Internet, byuse of gateway 3016. Likewise, access device 3018 (access point or AP)),such as an 802.11g wireless access device, can provide communicationaccess to the wide area network 3014. In some implementations, bothvoice and data communications can be established over wireless network3012 and access device 3018. For example, device 3002 a can place andreceive phone calls (e.g., using VoIP protocols), send and receivee-mail messages (e.g., using POP3 protocol), and retrieve electronicdocuments and/or streams, such as web pages, photographs, and videos,over wireless network 3012, gateway 3016, and wide area network 3014(e.g., using TCP/IP or UDP protocols). Likewise, in someimplementations, device 3002 b can place and receive phone calls, sendand receive e-mail messages, and retrieve electronic documents overaccess device 3018 and wide area network 3014. In some implementations,devices 3002 a or 3002 b can be physically connected to access device3018 using one or more cables and the access device 3018 can be apersonal computer. In this configuration, device 3002 a or 3002 b can bereferred to as a “tethered” device.

Devices 3002 a and 3002 b can also establish communications by othermeans. For example, wireless device 3002 a can communicate with otherwireless devices, e.g., other devices 3002 a or 3002 b, cell phones,etc., over wireless network 3012. Likewise, devices 3002 a and 3002 bcan establish peer-to-peer communications 3020, e.g., a personal areanetwork, by use of one or more communication subsystems, such as aBluetooth™ communication device. Other communication protocols andtopologies can also be implemented.

Devices 3002 a or 3002 b can communicate with one or more services overone or more wired and/or wireless networks 3010. These services caninclude, for example, online resources 3030, such as an online store foraccessing, purchasing, and/or downloading digital books to the devices3002 a and/or 3002 b. Online resources 3030 can also include a Web-basedauthoring application that can be used by subscribing authors through abrowser. In some implementations, online resources 3030 can include anonline book publisher or publishing service. After completing a finaldraft of a digital book, the author can invoke a publishing applicationthat allows the author to prepare the digital book for submission to theonline publisher. The publishing application can be invoked directlyfrom the authoring application.

The features described can be implemented in digital electroniccircuitry or in computer hardware, firmware, software, or incombinations of them. The features can be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device, for execution by a programmableprocessor; and method steps can be performed by a programmable processorexecuting a program of instructions to perform functions of thedescribed implementations by operating on input data and generatingoutput.

The described features can be implemented advantageously in one or morecomputer programs that are executable on a programmable system includingat least one programmable processor coupled to receive data andinstructions from, and to transmit data and instructions to, a datastorage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that can be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program can be written in anyform of programming language (e.g., Objective-C, Java), includingcompiled or interpreted languages, and it can be deployed in any form,including as a stand-alone program or as a module, component,subroutine, or other unit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors orcores, of any kind of computer. Generally, a processor will receiveinstructions and data from a read-only memory or a random access memoryor both. The essential elements of a computer are a processor forexecuting instructions and one or more memories for storing instructionsand data. Generally, a computer can communicate with mass storagedevices for storing data files. These mass storage devices can includemagnetic disks, such as internal hard disks and removable disks;magneto-optical disks; and optical disks. Storage devices suitable fortangibly embodying computer program instructions and data include allforms of non-volatile memory, including by way of example semiconductormemory devices, such as EPROM, EEPROM, and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, ASICs(application-specific integrated circuits).

To provide for interaction with an author, the features can beimplemented on a computer having a display device such as a CRT (cathoderay tube) or LCD (liquid crystal display) monitor for displayinginformation to the author and a keyboard and a pointing device such as amouse or a trackball by which the author can provide input to thecomputer.

The features can be implemented in a computer system that includes aback-end component, such as a data server or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include a LAN, a WAN and thecomputers and networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork. The relationship of client and server arises by virtue ofcomputer programs running on the respective computers and having aclient-server relationship to each other.

One or more features or steps of the disclosed embodiments can beimplemented using an Application Programming Interface (API). An API candefine on or more parameters that are passed between a callingapplication and other software code (e.g., an operating system, libraryroutine, function) that provides a service, that provides data, or thatperforms an operation or a computation.

The API can be implemented as one or more calls in program code thatsend or receive one or more parameters through a parameter list or otherstructure based on a call convention defined in an API specificationdocument. A parameter can be a constant, a key, a data structure, anobject, an object class, a variable, a data type, a pointer, an array, alist, or another call. API calls and parameters can be implemented inany programming language. The programming language can define thevocabulary and calling convention that a programmer will employ toaccess functions supporting the API.

In some implementations, an API call can report to an application thecapabilities of a device running the application, such as inputcapability, output capability, processing capability, power capability,communications capability, etc.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. For example, manyof the examples presented in this document were presented in the contextof an ebook. The systems and techniques presented herein are alsoapplicable to other electronic text such as electronic newspaper,electronic magazine, electronic documents etc. Elements of one or moreimplementations may be combined, deleted, modified, or supplemented toform further implementations. As yet another example, the logic flowsdepicted in the figures do not require the particular order shown, orsequential order, to achieve desirable results. In addition, other stepsmay be provided, or steps may be eliminated, from the described flows,and other components may be added to, or removed from, the describedsystems. Accordingly, other implementations are within the scope of thefollowing claims.

What is claimed is:
 1. A method of authoring content for a digital book,the method comprising: providing a graphical user interface (GUI)including a composition area; receiving and displaying text from a textsource within the composition area; receiving first input selecting aninteractive element type from one or more interactive element types tobe inserted in the composition area; responsive to the first input,inserting an interactive element of the interactive element type withinthe text according to an anchor position in the text; receiving secondinput selecting content to be inserted into the interactive element; andresponsive to the second input, inserting the content in the interactiveelement.
 2. The method of claim 1, further comprising: presenting anoutline view of the digital book in the GUI according to a hierarchicalstructure of the digital book, the hierarchical structure beingautomatically determined based on paragraph styles applied to the textdisplayed in the GUI.
 3. The method of claim 1, where receiving textfurther comprises: automatically creating a run of pages for receivingthe text, where the number of pages in the run of pages is based on theamount of text received.
 4. The method of claim 1, where receiving firstuser input comprises: detecting dropping of an icon corresponding to theselected interactive element type in the GUI.
 5. The method of claim 1,further comprising: displaying a user interface element in the GUI fordetermining the layout of the interactive element and user interactionof the interactive element on a device.
 6. The method of claim 1, wherethe interactive element includes a figure label and enumeration, themethod further comprising: receiving third input causing the interactiveelement to move to a different location in the digital book; determiningthat an order of interactive elements of the interactive element typeinserted in the digital book are out of sequential order; andautomatically updating the enumeration on each of the interactiveelements of the interactive element type in the digital book to be insequential order.
 7. The method of claim 1, where the interactiveelement type is a gallery interactive element having a media displayarea for displaying the content and the content is a gallery of digitalimages, the method further comprising: displaying a series of thumbnailimages corresponding to the gallery of digital images; receiving touchgesture input directed to the thumbnail images; and responsive to thetouch gesture input, replacing a first digital image of the gallery thatis currently displayed in the media display area with another digitalimage from the gallery.
 8. The method of claim 7, further comprising:displaying a control for resizing the content to fit or fill the mediadisplay area.
 9. The method of claim 5, further comprising: displayingan accessibility description area in the user interface element; andreceiving text input in the accessibility description area.
 10. Themethod of claim 5, further comprising: displaying in the user interfaceelement settings for a title and caption for the interactive element;and receiving input specifying one or more of the settings.
 11. Themethod of claim 1, further comprising: receiving a media object into theGUI; and converting the media object into an interactive element of theinteractive element type.
 12. The method of claim 1, further comprising:configuring the interactive element to present a multimediapresentation, video, HyperText Markup Language (HTML) content orthree-dimensional animation.
 13. A method of authoring content for adigital book, the method comprising: receiving text from a text source;displaying the text in a graphical user interface (GUI); receiving inputselecting a review interactive element type to be inserted in the textin the GUI; and responsive to the input, inserting a review interactiveelement in the text, the review interactive element including a questionarea for receiving a question and an answer area for receiving one ormore answers to the question, where the answer area is configuredaccording to a question type.
 14. The method of claim 13, where thequestion type includes specifying one or more digital images as one ormore answers to the question.
 15. The method of claim 13, where thequestion type includes associating one or more labels or thumbnailimages to one or more locations on a digital image to indicate one ormore answers to the question.
 16. The method of claim 13, furthercomprising: displaying a user interface element in the GUI fordetermining the layout of the review interactive element and userinteraction of the review interactive element on a device.
 17. Themethod of claim 16, where determining a user interaction includesspecifying more than one answer for a question.
 18. A method ofauthoring content for a digital book, the method comprising: receivingtext from a text source; displaying the text in a graphical userinterface (GUI); receiving input selecting a visual dictionaryinteractive element type to be inserted in the text in the GUI; andresponsive to the input, inserting a visual dictionary interactiveelement in the text, the visual dictionary interactive element includinga media display area for receiving content and one or more placardsconfigured to be dragged to one or more locations on the content. 19.The method of claim 18, further comprising: receiving text input for theplacards.
 20. The method of claim 19, further comprising: displaying auser interface element in the GUI for determining the layout of thevisual dictionary interactive element and user interaction of the visualdictionary interactive element on a device.
 21. The method of claim 20,where the user interface element includes a setting for specifying thesame location in the interactive element for display of placard text.22. The method of claim 20, where the user interface element includes asetting for inserting a transport control in the visual dictionaryinteractive element for navigating content.
 23. The method of claim 18,further comprising: displaying a control for adjusting the zoom level ofthe content in the media display area; and associating the zoom levelwith a placard.
 24. A method of authoring content for a digital book,the method comprising: displaying a hybrid glossary and index page forinteracting with a glossary and index of a digital book, the glossaryand index page including a first area displaying a definition of a firstglossary term, a second area displaying a list of glossary termsincluding the first glossary term and other glossary terms, a third areadisplaying glossary terms related to the first glossary term and afourth area displaying references to the first glossary term; andresponsive to dragging a second glossary term from the list in thesecond area to the third area, automatically relating the secondglossary term to the first glossary term.
 25. The method of claim 24,further comprising: receiving first input adding a term reference to thefourth area for the term defined in the first area, the term referenceincluding a link to a location in the digital book that contains theterm defined in the first area.
 26. The method of claim 24, furthercomprising: receiving input adding a media object or interactive elementto the first area.
 27. The method of claim 25, further comprising:receiving second input initiating an operation on a link of a termreference in the fourth area.
 28. The method of claim 25, where the termreference is contained in a label, placard or caption of a figure orcontent inserted in the digital book.
 29. The method of claim 25, wherereceiving first input adding a term reference to the fourth area,further comprises: displaying a glossary tool bar; receiving inputhighlighting a term in the digital book; and adding the term to theglossary as a term reference.
 30. A system for authoring content for adigital book, comprising: one or more processors; memory coupled to theone or more processors and configured for storing instructions, which,when executed by the one or more processors, performs operationscomprising: providing a graphical user interface (GUI) including acomposition area; receiving and displaying text from a text sourcewithin the composition area; receiving first input selecting aninteractive element type from one or more interactive element types tobe inserted in the composition area; responsive to the first input,inserting an interactive element of the interactive element type withinthe text according to an anchor position in the text; receiving secondinput selecting content to be inserted into the interactive element; andresponsive to the second input, inserting the content in the interactiveelement.
 31. The system of claim 30, further comprising: presenting anoutline view of the digital book in the GUI according to a hierarchicalstructure of the digital book, the hierarchical structure beingautomatically determined based on paragraph styles applied to the textdisplayed in the GUI.
 32. The system of claim 30, where receiving textfurther comprises: automatically creating one or more pages forreceiving the text, where the number of pages is based on the amount oftext received.
 33. The system of claim 30, where receiving first userinput comprises: detecting dropping of an icon corresponding to theselected interactive element type in the GUI.
 34. The system of claim30, further comprising: displaying a user interface element in the GUIfor determining the layout of the interactive element and userinteraction of the interactive element on a device.
 35. The system ofclaim 30, where the interactive element includes a figure label andenumeration, the system further comprising: receiving third inputcausing the interactive element to move to a different location in thedigital book; determining that an order of interactive elements of theinteractive element type inserted in the digital book are out ofsequential order; and automatically updating the enumeration on each ofthe interactive elements of the interactive element type in the digitalbook to be in sequential order.
 36. The system of claim 30, where theinteractive element type is a gallery interactive element having a mediadisplay area for displaying the content and the content is a gallery ofdigital images, the system further comprising: displaying a series ofthumbnail images corresponding to the gallery of digital images;receiving touch gesture input directed to the thumbnail images; andresponsive to the touch gesture input, replacing a first digital imageof the gallery that is currently displayed in the media display areawith another digital image from the gallery.
 37. The system of claim 36,further comprising: displaying a control for resizing the content to fitor fill the media display area.
 38. The system of claim 36, furthercomprising: displaying an accessibility description area in the userinterface element; and receiving text input in the accessibilitydescription area.
 39. The system of claim 5, further comprising:displaying in the user interface element settings for a title andcaption for the interactive element; and receiving input specifying oneor more of the settings.
 40. The system of claim 30, further comprising:receiving a media object into the GUI; and converting the media objectinto an interactive element of the interactive element type.
 41. Thesystem of claim 30, further comprising: configuring the interactiveelement to present a multimedia presentation, video, HyperText MarkupLanguage (HTML) content or three-dimensional animation.
 42. A system ofauthoring content for a digital book, comprising: receiving text from atext source; displaying the text in a graphical user interface (GUI);receiving first input selecting a review interactive element type to beinserted in the text in the GUI; and responsive to the first input,inserting a review interactive element in the text, the reviewinteractive element including a question area for receiving a questionand an answer area for receiving one or more answers to the question,where the answer area is configured according to a question type. 43.The system of claim 42, where the question type includes specifying oneor more digital images as one or more answers to the question.
 44. Thesystem of claim 42, where the question type includes associating one ormore labels or thumbnail images to one or more locations on a digitalimage to indicate one or more answers to the question.
 45. The system ofclaim 42, further comprising: displaying a user interface element in theGUI for determining the layout of the review interactive element anduser interaction of the review interactive element on a device.
 46. Thesystem of claim 45, where determining a user interaction includesspecifying more than one answer for a question.
 47. A system ofauthoring content for a digital book, the system comprising: receivingtext from a text source; displaying the text in a graphical userinterface (GUI); receiving first input selecting a visual dictionaryinteractive element type to be inserted in the text in the GUI; andresponsive to the first input, inserting a visual dictionary interactiveelement in the text, the visual dictionary interactive element includinga media display area for receiving content and a label area forsupplying one or more placards configured to be dragged to one or morelocations on the content.
 48. The system of claim 47, furthercomprising: receiving text input for the placards.
 49. The system ofclaim 48, further comprising: displaying a user interface element in theGUI for determining the layout of the visual dictionary interactiveelement and user interaction of the visual dictionary interactiveelement on a device.
 50. The system of claim 49, where the userinterface element includes a setting for specifying the same location inthe interactive element for display of placard text.
 51. The system ofclaim 49, where the user interface element includes a setting forinserting a transport control in the visual dictionary interactiveelement for navigating content.
 52. The system of claim 47, furthercomprising: displaying a control for adjusting the zoom level of thecontent in the media display area; and associating the zoom level with aplacard.
 53. A system of authoring content for a digital book, thesystem comprising: displaying a hybrid glossary and index page forinteracting with a glossary and index of a digital book, the glossaryand index page including a first area displaying a definition of a firstglossary term, a second area displaying a list of glossary termsincluding the first glossary term and other glossary terms, a third areadisplaying related glossary terms and a fourth area displayingreferences to the first glossary term; and responsive to dragging asecond glossary term from the list in the second area to the third area,automatically relating the second glossary term to the first glossaryterm.
 54. The system of claim 53, further comprising: receiving firstinput adding a term reference to the fourth area for the term defined inthe first area, the term reference including a link to a location in thedigital book that contains the term defined in the first area.
 55. Thesystem of claim 53, further comprising: receiving input adding a mediaobject or interactive element to the first area.
 56. The system of claim54, further comprising: receiving second input initiating an operationon a link of a term reference in the fourth area.
 57. The system ofclaim 54, where the term reference is contained in a label, placard orcaption of a figure or content inserted in the digital book.
 58. Thesystem of claim 54, where receiving first input adding a term referenceto the fourth area, further comprises: displaying a glossary tool bar;receiving input highlighting a term in the digital book; and adding theterm to the glossary as a term reference.
 59. A method comprising:displaying a first element of a digital book, the first element having atype; receiving a selection of the first element; receiving inputspecifying a change to an attribute of the selected element;automatically determining a second element in the digital book that isassociated with the type; and automatically applying the change to theautomatically determined second element.
 60. The method of claim 59,further comprising: automatically determining a third element in thedigital book that is associated with the type; automatically determiningthat an attribute of the third element has been previously changed; andpreventing the change from being applied to the third element.
 61. Themethod of claim 59, further comprising: automatically generating a newparagraph style based on the change.
 62. A method comprising: displayinga first element of a digital book, the first element having a paragraphstyle; receiving a selection of the first element; receiving inputspecifying a change to an attribute of the selected element;automatically determining a second element in the digital book that isassociated with the paragraph style; and automatically applying thechange to the automatically determined second element.